const App = getApp()
Component({
  /**
   * 组件的属性列表
   */
  externalClasses: ['ex-class'],
  options: {
    multipleSlots: true
  },
  properties: {
    in: {
      type: Boolean,
      value: false
    },
    data: {
      type: Array,
      value: [],
      observer(newVal, oldVal) {}
    },
  },

  /**
   * 组件的初始数据
   */
  data: {
    iphoneX: App.globalData.isIphoneX,
    statusBarHeight: App.globalData.statusBarHeight,
    count: 0
  },
  /**
   * 组件的方法列表
   */
  methods: {
    closeFilter() {
      this.setData({
        in: false
      })
    },
    onChange(e) {
      const { parentIndex, item, index } = e.currentTarget.dataset
      // 如果选中状态
      if (item.stringList[index].checked) {
        item.stringList[index].checked = false // 取消选择
        if (item.type == 'checkbox') {
          this.data.count--
        }
      } else {
        // 如果不是多选
        if (item.type != 'checkbox') {
          // 全部重置为未选择状态
          item.stringList.map(n => (n.checked = false))
        }
        // 将点击的设置为选中
        item.stringList[index].checked = true
        if (item.type == 'checkbox') {
          this.data.count++
        }
      }
      // 最多选择5个
      if (item.type == 'checkbox' && this.data.count >= 6) {
        wx.showToast({ title: '最多选5个', icon: 'none' })
        return
      }
      this.setData({
        [`data[${parentIndex}]`]: item
      })
    },
    // 重置
    doCancel() {
      this.data.data.map(n => {
        n.stringList.map(m => {
          m.checked = false
        })
      })
      this.setData({
        count: 0,
        data: this.data.data
      })
    },
    // 提交
    doSubmit() {
      let selected = []
      // 获取所有选中
      this.data.data.map(n => {
        n.stringList.map(m => {
          if (m.checked == true) {
            selected.push(m)
         
          }
        })
      })
     
      this.setData({
        in: false
      })
      this.triggerEvent('search', selected)
    }
  }
})
